package com.testword.service;

import com.testword.entity.dto.UserLoginInforDTO;
import com.testword.entity.po.UserInfo;
import com.testword.entity.query.UserInfoQuery;
import com.testword.entity.vo.PaginationResultVO;

import java.util.List;

/**
 * 学生信息表
Service
 */
public interface UserInfoService {

	/**
	 * 根据条件查询列表
	 */
	List<UserInfo> findListByParam(UserInfoQuery query);

	/**
	 * 根据条件查询数量
	 */
	Integer findCountByParam(UserInfoQuery query);

	/**
	 * 分页查询
	 */
	PaginationResultVO<UserInfo> findListByPage(UserInfoQuery query);

	/**
	 * 新增
	 */
	Integer add(UserInfo bean);

	/**
	 * 批量新增
	 */
	Integer addBatch(List<UserInfo> listBean);

	/**
	 * 批量新增/修改
	 */
	Integer addOrUpdateBatch(List<UserInfo> listBean);

	/**
	 * 根据StudentId查询
	 */
	UserInfo getUserInfoByStudentId(String studentId);

	/**
	 * 根据StudentId修改
	 */
	Integer updateUserInfoByStudentId(UserInfo bean, String studentId);

	/**
	 * 根据StudentId删除
	 */
	Integer deleteUserInfoByStudentId(String studentId);

	/**
	 * 根据NickName查询
	 */
	UserInfo getUserInfoByNickName(String nickName);

	/**
	 * 根据NickName修改
	 */
	Integer updateUserInfoByNickName(UserInfo bean, String nickName);

	/**
	 * 根据NickName删除
	 */
	Integer deleteUserInfoByNickName(String nickName);

	UserInfo login(String studentId,String nickName,Integer cet4Score,Integer cet6Score);

	List<UserInfoQuery> rank();

	void register(UserLoginInforDTO userLoginInforDTO);
}
